The present invention relates generally to programmable logic devices, and more specifically to programmable logic devices that use event logs for diagnostic purposes.
Field programmable gate arrays (FPGAs) are regular structures of logic modules communicating via an interconnect architecture of lines and switches. A user programs the logic modules and interconnect structures to perform particular functions and realize the FPGA's global function. Because of their programmability in the field, they have been widely used for rapid prototyping or reconfiguration of complex digital systems. There are many types of FPGA, such as RAM-based, EPROM switches or antifuses. Out of these, RAM-based FPGAs are the most popular and widely used.
Some types of FPGAs may be configured to compile all detected errors and other significant events in an event log. When a system controlled by an FPGA is serviced, for example, after some problem or failure, the event log can be examined to help determine the cause of the problem or failure. One standard form of event log is a “circular” event log. Once the event log is full, new events overwrite the oldest events in the log. This does not work well for events that trigger a cascade of error events. If there are enough follow-on events, the trigger event(s) could be discarded and unavailable for diagnoses. The likelihood of unavailable events of interest can be reduced by using event logs with greater capacity. However, FPGA's integrated-circuit real estate is limited so that it is not practical to use an event log that is large enough to store all possible events of interest. Accordingly, conventional FPGAs do not provide a flexible way to capture and retain events of greatest interest at appropriate granularity level.